# 解决ann到label的问题，给每个mask打label
"""
{       'segmentation':
            array([[False, False, False, ..., False, False, False],
                   [False, False, False, ..., False, False, False],
                   [False, False, False, ..., False, False, False],
                   ...,
                   [False, False, False, ..., False, False, False],
                   [False, False, False, ..., False, False, False],
                   [False, False, False, ..., False, False, False]]),
       'area': 313, 'bbox': [593, 742, 17, 20],
       'predicted_iou': 0.884058952331543,
       'point_coords': [[610.3125, 745.9375]],
       'stability_score': 0.9535603523254395,
       'crop_box': [0, 0, 868, 868]},
"""
import pandas as pd
import numpy as np
def ann2label(masks,label):# label的输入为gt
    """
    对每个ann对应一个类别
    Args:
        masks:
        label: 

    Returns:
    返回mask对应的类别
    """
    for mask in masks:
        # 将 mask 中值为 True 的位置对应的 label 提取出来
        true_labels = label[mask]

        # 使用 Pandas 统计各个 label 的数量
        label_counts = pd.Series(true_labels).value_counts()

        # 取出数量最多的 label 作为该 mask 的 tag
        most_common_label = label_counts.idxmax()

        print("Mask 的 tag 是:", most_common_label)

    pass